hasPermission(auth, targetObj, permission),針對目標實體(DTO)該使用者是否有某permission(如DELETE、EDIT等)。@PostAuthorize 去看看回傳的物件能否被使用者看到(可能包含隱私成員)。hasPermission(auth, targetId, targetType, permission),針對某Type的資料(ID),使用者是否有某permission(如DELETE、EDIT等)。@PreAuthorize 中攔截id與使用者做權限判斷。DomainPermissionChecker 介面,並由不同 資源PermissionChecker 去實作 ➝ 形成一組CheckerBeans。GlobalPermissionEvaluator 去實作 PermissionEvaluator,其中注入 Map<String, DomainPermissionChecker>,Map由 targetTypeName 對 CheckerBean。hasPermission。Controller --> PreAuthorize --> @hasPermission --> GlobalEvaluator --> DomainPermissionChecker --> EntityPermissionChecker.hasPermission
本篇文章出自《每天學Java直到今年結束》Day237,大家可以到我的網站上查看~